#ifndef CAMERA_H
#define CAMERA_H

#include <gl/glu.h>
#include "vector3.h"
#include "object.h"
#include "controller.h"

class Camera : public Object
{
private:
    Object *Target;
    bool Stable;
    bool Bounded;
    bool TargetCreated;

    Controller con;

    void binds();
public:
    Camera();tghdxshgfx
    Camera(Vector3 newPOS);
    Camera(Vector3 newPOS, Vector3 newDIR);
    Camera(Vector3 newPOS, Vector3 newDIR, Vector3 newUP);
    Camera(Vector3 newPOS, Vector3 newDIR, Vector3 newUP, Object *newTarget);
    Camera(Vector3 newPOS, Vector3 newDIR, Vector3 newUP, Object *newTarget, bool Stable_status, bool Bounded_status);

    bool const isStable (){return Stable;}

    void setStable(bool Stable_status){Stable = Stable_status;}

    void bindToObject(Object *newTarget);
    void bindToPlace(Vector3 newTarget);
    void bindToPlace();
};

#endif // CAMERA_H
